*::after, *::before {
  box-sizing: border-box;
}

*{
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  overflow: hidden;
  background: #222;
  background-image: 
    linear-gradient(to right, #333 1px, transparent 1px),
    linear-gradient(to bottom, #333 1px, transparent 1px);
  background-size: 40px 40px;
  cursor: none;
}

.cursour {
  position: fixed;
  width: 25px;
  height: 25px;
  border-top: 5px solid #0f0;
  border-left: 5px solid #0f0;
  transform-origin: top;
  transform: translate(-1px, 5px) rotate(15deg) scale(0);
  transition: transform .1s;
  pointer-events: none;
  filter: drop-shadow(0 0 5px #0f0) drop-shadow(0 0 15px #0f0) drop-shadow(0 0 35px #0f0) hue-rotate(60deg);
}

.cursour::before {
  content: '';
  position: absolute;
  left: -2.5px;
  width: 5px;
  height: 40px;
  background: #0f0;
  transform-origin: top;
  transform: rotate(315deg);
}

body:hover .cursour {
  transform: translate(-1px, 5px) rotate(15deg) scale(1);
}

.element {
  position: absolute;
  transform: translate(-50%, -50%);
  color: #0f0;
  pointer-events: none;
  width: 10px;
  height: 10px;
  transition: 1s;
  font-size: 2em;
  filter: drop-shadow(0 0 5px #0f0) drop-shadow(0 0 25px #0f0) hue-rotate(60deg);
}